[Amazon Connect] 異なる問い合わせフローを同じ電話番号から発信できるか試してみた
Amazon Connectの電話番号の設定画面には、電話番号と問い合わせフローを紐付ける設定が存在します。 公式ドキュメントによると、「Amazon Connectへの着信時」に活用されると読み取れます。
そこで思ったのです。「Amazon Connectから発信する場合は、発信で使う問い合わせフローの数だけ電話番号が必要なの?」と。 電話番号を保持しているだけで課金されるため、保持する電話番号は少ないほうが嬉しいです。そこで複数の問い合わせフローを同じ電話番号から発信できるか試してみました。
Amazon Connectの準備
インスタンスの作成
下記を参考にして、Amazon Connectインスタンスを作成します。
問い合わせフローを作成する(1つ目)
発信用の問い合わせフローを作成し、保存&公開を行います。
音声の設定
- 言語:日本語
- 音声:Mizuki
プロンプトの再生
- テキスト読み上げまたはチャットテキスト
- 動的に入力する
- タイプ:ユーザー定義
- 属性:message
- 解釈する:テキスト
- 動的に入力する
インスタンスIDとコンタクトフローIDを取得する
問い合わせフローの左側にあるARNをメモしておきます。
このARNの一部にインスタンスIDとコンタクトフローIDが含まれています。
電話番号を取得する
適当に電話番号を取得します。問い合わせフローとの紐付けは行いません。
電話番号と問い合わせフローは紐付けない
電話番号と問い合わせフローは紐付けません。
発信用Lambdaの作成
下記コードのLambdaを作成します。
import boto3 DESTINATION_PHONE_NUMBER = '+8190aaaabbbb' # 着信先 SOURCE_PHONE_NUMBER = '+8180xxxxyyyy' # 発信元 INSTANCE_ID = 'your instance id' CONTACT_FLOW_ID = 'your contact flow id' connect = boto3.client('connect') def lambda_handler(event, context): connect.start_outbound_voice_contact( DestinationPhoneNumber=DESTINATION_PHONE_NUMBER, ContactFlowId=CONTACT_FLOW_ID, InstanceId=INSTANCE_ID, SourcePhoneNumber=SOURCE_PHONE_NUMBER, Attributes={ 'talk_message': 'これはテストメッセージです。' } )
Lambda自体にはarn:aws:iam::aws:policy/AmazonConnectFullAccess
の権限を付与します。
(最小限の権限のみを付与する場合は、connect:StartOutboundVoiceContact
があればOKです)
実験その1:電話番号を紐付けなくても、発信できた
上記のLambdaを手動実行すると、手元のスマホに着信しました!
実験その2:問い合わせフローが複数あっても、同じ電話番号で発信できた
下記の問い合わせフロー(2つ目)を作成しました。電話番号と紐付けは行いません。
そして、上記のLambdaのCONTACT_FLOW_ID
を問い合わせフロー(2つ目)のコンタクトフローID変更して発信すると、手元のスマホに着信し、問い合わせフロー(2つ目)に従って音声が流れました!
問い合わせフローを作成する(2つ目)
発信用の問い合わせフロー(2つ目)を作成し、保存&公開を行います。
音声の設定
- 言語:日本語
- 音声:Takumi
プロンプトの再生
- テキスト読み上げまたはチャットテキスト
- テキストの入力
- テキスト:私はクラスメソッドです。
- 解釈する:テキスト
- テキストの入力
さいごに
気になったので実験しました。スッキリです。発信時は電話番号の節約ができますね。(同じ電話番号でOKの場合)